<?php
class PerfisController extends AppController {

    public function index() {
        $this->set('perfis', $this->Perfil->find('all'));
    }

    public function view($id = null) {
        if (!$id) {
            throw new NotFoundException(__('Perfil inválido'));
        }

        $perfil = $this->Perfil->findById($id);
        if (!$perfil) {
            throw new NotFoundException(__('Perfil inválido'));
        }
        $this->set('perfil', $perfil);
    }

    public function add() {
        if ($this->request->is('post')) {
            $this->Perfil->create();
            if ($this->Perfil->save($this->request->data)) {
				$this->Session->setFlash('<a class="close"></a><p>O perfil foi salvo.</p>', 'default', array('escape' => false, 'class' => 'notibar msgsuccess'));
                $this->redirect(array('action' => 'view', $this->Perfil->id));
            }
        }

		$this->set('errors', $this->Perfil->validationErrors);
    }

    public function edit($id = null) {
        if (!$id) {
            throw new NotFoundException(__('Perfil inválido'));
        }

        $perfil = $this->Perfil->findById($id);
        if (!$perfil) {
            throw new NotFoundException(__('perfil'));
        }

        if ($this->request->is('post') || $this->request->is('put')) {
            $this->Perfil->id = $id;
            if ($this->Perfil->save($this->request->data)) {
				$this->Session->setFlash('<a class="close"></a><p>O perfil foi salvo.</p>', 'default', array('escape' => false, 'class' => 'notibar msgsuccess'));
                $this->redirect(array('action' => 'view', $this->Perfil->id));
            }
        }

        if (!$this->request->data) {
            $this->request->data = $perfil;
        }

		$this->set('errors', $this->Perfil->validationErrors);
		$this->set('perfil', $perfil);
    }

    public function delete($id) {
        if ($this->request->is('get')) {
            throw new MethodNotAllowedException();
        }

		$this->Usuario = ClassRegistry::init('Usuario');
		$usuarios = $this->Usuario->find('all', array('conditions' => array("Usuario.perfil_id" => $id)));

		if (count($usuarios) > 0 ){
			$this->Session->setFlash('<a class="close"></a><p>Impossível remover perfil com o id: ' . $id . '. Existe usuário relacionado.</p>', 'default', array('escape' => false, 'class' => 'notibar msgerror'));

            $this->redirect(array('action' => 'index'));
		}

        if ($this->Perfil->delete($id)) {
			$this->Session->setFlash('<a class="close"></a><p>O perfil com o id: ' . $id . ' foi deletado.</p>', 'default', array('escape' => false, 'class' => 'notibar msgsuccess'));

            $this->redirect(array('action' => 'index'));
        }
    }
}